Method and circuit for insertion of time stamp into real time data

ABSTRACT

A system for adding a time stamp to transmission traffic on a network comprises a front end processor that receives a packet from the network and generates a Start Of Frame pulse and a LENGTH field corresponding to a length of the packet. A time stamp generator generates a time stamp by sampling the system master time counter. A synchronizer receives the SOF pulse and the LENGTH field from the front end processor, and generates a control signal. A multiplexer inputs the packet from the front end processor, the control signal and the time stamp, and outputs a modified packet with a field in the packet replaced by the time stamp.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application claims priority to U.S. Provisional Patent ApplicationNo. 60/380,830, filed on May 17, 2002, entitled “METHOD AND CIRCUIT FORINSERTION OF TIME STAMP INTO REAL TIME DATA,” which is incorporatedherein by reference.

BACKGROUND OF THE INVENTION

1. Field of the Invention

The present invention relates to monitoring of data in a two-waycommunications system, and more particularly, to monitoring oftransmissions using a time stamp.

2. Related Art

In a DOCSIS (Data Over Cable Service Interface Specification) 1.1 or 2.0system (published by Cable Labs, Inc., and which is incorporated byreference herein), downstream data is continuous and of uniform pipelinedelay between a cable modem termination system (CMTS) output processblocks and a cable modem (CM) input processing blocks. It is in thisregion of uniform pipeline delay where the CMTS inserts SYNC messagesand the CM extracts SYNC messages. Specifically, outside the region ofuniform pipeline delay, there are many applications where storingtransmission data for later processing can be useful, provided there isinformation available about the time of the transmission, i.e., atimestamp associated with the data.

SUMMARY OF THE INVENTION

The present invention is directed to a method and apparatus for markinga datum transmission with a time-stamp or time-code while in a real-timefixed pipeline delay process, prior to the datum being moved to anon-real time process.

There is provided a system for adding a time stamp to transmissiontraffic including a front end processor that receives a packet andgenerates a start of frame (SOF) pulse and a LENGTH field thatcorresponds to a length of the packet. A time stamp generator generatesa time stamp. A synchronizer receives the LENGTH field and the SOF pulsefrom the front end processor and generates a control signal. Amultiplexer inputs the packet from the front end processor, the controlsignal and the time stamp, and outputs a modified packet with a field inthe packet replaced by the time stamp.

In another aspect there is provided a method of time stampingtransmission traffic including the steps of receiving a packet from anetwork, generating a real-time timestamp, generating a Start Of Framesignal and a control signal, and outputting a modified packet with afield in the packet replaced by the real-time timestamp in response tothe control signal and the Start Of Frame signal.

Additional features and advantages of the invention will be set forth inthe description which follows, and in part will be apparent from thedescription, or may be learned by practice of the invention. Theadvantages of the invention will be realized and attained by thestructure particularly pointed out in the written description and claimshereof as well as the appended drawings.

It is to be understood that both the foregoing general description andthe following detailed description are exemplary and explanatory and areintended to provide further explanation of the invention as claimed.

BRIEF DESCRIPTION OF THE DRAWINGS

The accompanying drawings, which are included to provide a furtherunderstanding of the invention and are incorporated in and constitute apart of this specification, illustrate embodiments of the invention andtogether with the description serve to explain the principles of theinvention. In the drawings:

FIG. 1 illustrates a data format diagram of the present invention; and

FIG. 2 illustrates a system block diagram of the present invention.

DETAILED DESCRIPTION OF THE INVENTION

Reference will now be made in detail to the preferred embodiments of thepresent invention, examples of which are illustrated in the accompanyingdrawings.

A system for adding a timestamp to transmission traffic on a networkcomprises a front end processor that receives a packet from the network.The front end processor generates a start of frame (SOF) pulsecoincident with the packet arrival time at the front end processor. TheSOF pulse is synchronized to the system master clock and a sample of thesystem master clock is taken and held in a register. The SOF pulse isalso used to start a parsing machine which reads the LENGTH field of thepacket and computes the position of the packet CRC (cyclic redundancycheck) field. At the time the CRC field is reached in the process chain,the CRC is replaced with the Time Stamp value held in the storageregister. A multiplexer inputs the packet from the front end processor,the control signal (as discussed below) and the time stamp, and outputsa modified packet with a field in the packet replaced by the time stamp.

A system for adding a time stamp to transmission traffic on a networkcomprises a front end processor that receives a packet from the network.A timing recover counter keeps track of time in a receiving system (CM).The counter is kept in synchronization with a head end through the useof DOCSIS time SYNC messages. The SYNC messages are receivedperiodically by the receiving system (CM) and used to adjust andmaintain the receiving system's sense of real time. A time stampgenerator generates a real-time time stamp by sampling the system timecounter at a time coincident with a datum packet arrival into the frontend of the CM real time front end processor block. The front end processblock generates a Start Of Frame signal coincident with a datum packetarrival. A synchronizer uses the SOF pulse to take a snapshot of thesystem time reference called a time stamp, and generates a controlsignal. A multiplexer inputs the packet from the front end processor,the control signal and the real-time time stamp and outputs a modifiedpacket with a field in the packet replaced by the real-time time stamp.

A real-time processor is used to sample an actual 4-byte time counter,or TGC timestamp count (or value) at the precise time a packet (e.g., aMAC frame) arrives at the frame parsing engine of the cable mode (CM)logic. (The standard format of a frame is provided in the DOCSISspecification, as will be readily apparent to one skilled in the art.)This actual 4 byte timestamp (TGC count) value, sampled (obtained) at aMAC frame arrival, is substituted into the 4 byte cyclic redundancycheck (CRC) field of the same MAC frame. The presumption is that the CRChas already been used (either evaluated to be good, or not evaluated andignored) and is no longer needed in the data processing chain. Once theCRC is no longer needed, the 4-byte field occupied by the CRC is usefulfor the purpose of substituting a 4 byte timestamp in its place.

Use of the DOCSIS SYNC message allows for the “real-time” properties andfeatures of the DOCSIS system to function correctly. Use of timestampsand timestamp snapshots allows the user to configure timing referencesfor real time processing of data with a precision of tens ofnano-seconds and pico-seconds, respectively. Alternatively, if it isdesired to post-process protocol data unit (PDU) or MESSAGE data withoutregard to when the data actually arrives, then it becomes necessary totag each individual data packet, or MAC frame, with the actual arrivaltime of that particular MAC frame. The arrival time would typically bethe 4-byte timestamp (TGC value) present in the system master clock atthe time the MAC frame is presented to the first data processing blockin the CM.

FIG. 1, element A illustrates a frame, such as a MAC frame, thatincludes payload (MAC message) and overhead (MAC header or CRC). Whenthe frame (or packet) is received, a Start Of Frame signal is generated,see step B in FIG. 1. After generation of the Start Of Frame signal, itis synchronized to the master clock domain, and is used to sample amaster clock count, i.e., the TGC count.

A register is updated with a new TGC count such that it corresponds tothe MAC frame Start Of Frame (SOF) signal. A modified MAC frame (orpacket) is then generated, such that the CRC portion is replaced with atimestamp. Conveniently, the CRC portion of the MAC frame is a 4-bytelong field. Thus, a 4-byte long timestamp fits exactly within the CRCfield. Note that once the frame is received and processed, the CRC fieldis no longer necessary, and is in a sense redundant overhead from thatpoint forward. Thus, it is a good candidate as the place to locate thereal time timestamp.

Thus, as FIG. 1 illustrates:

At step A, original MAC frame (message or PDU) has a MAC Header, messagebody (PDU body) and CRC error correction field, (e.g., a word).

At step B, the start of the Mac frame (SOF) is detected.

At step C, the SOF is synchronized into the master clock domain and usedto sample the master clock count (TGC count).

At step D, a holding register (not shown in the figures) is updated withthe new TGC count which corresponds to the MAC frame SOF.

At step E, the original MAC frame, processed in real time has the 4 byteCRC replaced with the 4 byte TGC count sample.

Note further that there are other fields in the frame (packet) that maybe used as a place to store the timestamp. For example, the headerchecksum field, which is 2-bytes, can also be used, if a reduction intimestamp resolution is acceptable (since the field is only 2-byteslong). Other fields may also be used, to the extent that at a particularpoint in the processing, their content is no longer necessary andrepresents redundant overhead. For example, the source and destinationaddress fields in the header can be used as a place to put the timestamp, particularly the destination field. Furthermore, the DOCSISstandard reserves some fields. These reserved fields can also be used asthe place to locate the real time timestamp. Note that, advantageously,the length of the entire frame (packet) does not change, and therefore,no additional steps are required to manipulate frames whose length doesnot match the length of the received frame.

It is preferred that the data (payload) portion is not altered by theaddition of the timestamp, therefore, the use of overhead fields thatare no longer necessary at a particular point in a processing ispreferred.

FIG. 2 shows a system block diagram of one embodiment of the presentinvention. As shown in FIG. 2, a frame (e.g., frame byte data) isreceived by a front end processor 201. The front end processor 201generates a Start Of Frame (SOF) signal and outputs it to a Start OfFrame synchronizer 202. The front end processor 201 also outputs aLENGTH of packet signal to the Start Of Frame synchronizer, the LENGTHof packet corresponding to the LENGTH of the packet, in bytes.

The Start Of Frame synchronizer 202 also inputs a 32-bit TGC mastercounter output 203, which corresponds to a 4-byte timestamp. The StartOf Frame synchronizer 202 outputs a control signal and a TGC byte datasignal to a multiplexer 204. The multiplexer 204 outputs a modifiedframe, such that the modified frame now includes the timestamp.

Note that the system shown in FIG. 2 can itself function as a headend ina cable modem termination system, or it can function simply as a monitorto analyze communications traffic on a network, and assist the end userin, for example, analyzing any transmission abnormalities, networkerrors, abnormalities, glitches, etc. The system shown in FIG. 2 canalso function as a “portable” head end, that a technician in the fieldcan set up in order to test the properties of the communication system.

Thus, as shown in FIG. 2:

The Original MAC frame (Message or PDU) has a MAC Header, message body(PDU body) and CRC error correction word. The start of the MAC frame isdetected, and the LENGTH field is parsed. The SOF is synchronized intothe master clock domain and used to sample the master clock count (TGCcount). The TGC count is stored in a holding register. In addition, theLENGTH field is decremented, until the place where the CRC is located isreached. At this point the byte sequencer takes the TGC value containedin the holding register and sequences it byte by byte to the multiplexer204. Control passes to the multiplexer 204 to select the TGC value atthe time the CRC would normally be present. The TGC master counter isfree-running as it normally does in the receiving system. Finally, theoriginal MAC frame, processed in real time has the 4 byte CRC replacedwith the 4 byte TGC count sample.

Thus, a timestamp value can be provided in the unused CRC field of eachMAC frame, thereby keeping bandwidth efficiency unchanged and providingthe needed arrival time information for each MAC frame processed.

Data may be processed byte-wide through a processing channel and then afunction of the data, or a destination of the data is determined. Thedata is marked or stamped with the arrival time into the processor andthen sent via direct memory access into system core memory. Once in thememory, the data can be processed. Since the arrival time of the datarelative to the real-time count of the system clock is known, thedestination or function of the data can be determined in a non-real-timesoftware environment.

The method and circuit used to implement this functional improvementincludes at least 4 functional areas:

-   -   Detect start of MAC frame.    -   Synchronize start and sample system master clock (TGC counter)        at a time relative to the start of the MAC frame.    -   Compute, based on LENGTH field, the location of the CRC value.    -   Insert 4 byte Timestamp value into the CRC field, which contains        the now obsolete (post-processed) CRC value.

This approach allows the user (or a testing/verification system) to markDOCSIS MAC frames with the arrival times of the MAC frames into theprocessing channel for the purpose of post-processing the MAC frames. Ittherefore offers the advantage of being able to run non-real-timeprocessing and calculations on the data (i.e., upstream channeldescriptor (UCD) updates, bandwidth allocation map (MAP) allocationstart time re-computations, Time Division Multiple Access (TDMA)mini-slot count and frame count value changes, etc.) while retaining thereal-time property of knowing the actual time of MAC frames arrival.This has particular advantages in a product such as a cable transmissionmonitoring/analysis system, as most calculations will be done insoftware and there is a need to know the data's function relative to itsarrival time.

It will be understood by those skilled in the art that various changesin form and details may be made therein without departing from thespirit and scope of the invention as defined in the appended claims.Thus, the breadth and scope of the present invention should not belimited by any of the above-described exemplary embodiments, but shouldbe defined only in accordance with the following claims and theirequivalents.

1. A system for adding a time stamp to transmission traffic comprising:a front end processor that receives a packet and generates a start offrame (SOF) pulse and a LENGTH field that corresponds to a length of thepacket; a time stamp generator that generates a time stamp; asynchronizer that receives the LENGTH field and the SOF pulse from thefront end processor and generates a control signal; and a multiplexerthat inputs the packet from the front end processor, the control signaland the time stamp, and outputs a modified packet with a field in thepacket replaced by the time stamp.
 2. The system of claim 1, wherein alength of the modified packet is the same as the length of the packet.3. The system of claim 1, wherein the field in the packet is a cyclicredundancy check field.
 4. The system of claim 1, wherein the field inthe packet is a checksum field.
 5. The system of claim 1, wherein thefield in the packet is a reserved DOCSIS field.
 6. The system of claim1, wherein the field in the packet is a destination address field. 7.The system of claim 1, wherein the field in the packet is a sourceaddress field.
 8. The system of claim 1, wherein the field in the packetis four bytes long.
 9. The system of claim 1, wherein the field in thepacket is two bytes long.
 10. The system of claim 1, wherein thetimestamp is four bytes long.
 11. The system of claim 1, furtherincluding a memory for storing the modified packet.
 12. The system ofclaim 11, wherein the memory is a local memory.
 13. The system of claim1, wherein the packet is a MAC (Media Access Controller) frame.
 14. Thesystem of claim 1, wherein the packet is a data packet.
 15. A method oftime stamping transmission traffic comprising the steps of: receiving apacket from a network; generating a real-time timestamp; generating aStart Of Frame signal and a control signal; and outputting a modifiedpacket with a field in the packet replaced by the real-time timestamp inresponse to the control signal and the Start Of Frame signal.
 16. Themethod of claim 15, further including the step of storing the modifiedpacket locally.
 17. The method of claim 15, wherein a length of themodified packet is the same as a length of the packet.
 18. The method ofclaim 15, wherein the field in the packet is a cyclic redundancy checkfield.
 19. The method of claim 15, wherein the field in the packet is achecksum field.
 20. The method of claim 15, wherein the field in thepacket is a reserved DOCSIS field.
 21. The system of claim 16, whereinthe field in the packet is a destination address field.
 22. The systemof claim 16, wherein the field in the packet is a source address field.23. The method of claim 15, wherein the field in the packet is fourbytes long.
 24. The method of claim 15, wherein the field in the packetis two bytes long.
 25. The method of claim 15, wherein the real-timetimestamp is four bytes long.
 26. The method of claim 15, furtherincluding the step of outputting a LENGTH signal corresponding to alength of the packet to a synchronizer.
 27. The method of claim 26,further including the step of determining a position of the field basedon the LENGTH signal.
 28. The method of claim 15, further including thestep of storing the modified packet in a memory.
 29. The method of claim15, wherein the packet is a MAC frame packet.
 30. The method of claim15, wherein the packet is a data packet.